package com.zomiot.portal.auth.constant;

/**
 * 用户角色枚举
 *
 * 角色与权限的映射关系：
 * - VISITOR（访客）→ GUEST权限
 * - MEMBER（会员）→ GUEST + MEMBER权限
 * - CONTENT_MANAGER（内容管理员）→ GUEST + MEMBER + EDITOR权限
 * - SYSTEM_ADMIN（系统管理员）→ GUEST + MEMBER + EDITOR + ADMIN权限
 *
 * @author Joash_Yi
 */
public enum UserRole {

    /**
     * 访客（未注册/未登录用户）
     * 默认角色，无需数据库存储
     */
    VISITOR,

    /**
     * 普通会员
     * 注册成功后的默认角色
     */
    MEMBER,

    /**
     * 内容管理员
     * 负责网站内容维护（新闻、产品、资料等）
     * 示例：编辑、运营人员
     */
    CONTENT_MANAGER,

    /**
     * 系统管理员
     * 拥有最高权限，可管理所有模块
     * 示例：技术管理员、超级管理员
     */
    SYSTEM_ADMIN;

    /**
     * 获取角色的显示名称（中文）
     *
     * @return 角色的中文名称
     */
    public String getDisplayName() {
        return switch (this) {
            case VISITOR -> "访客";
            case MEMBER -> "会员";
            case CONTENT_MANAGER -> "内容管理员";
            case SYSTEM_ADMIN -> "系统管理员";
        };
    }
}